home *** CD-ROM | disk | FTP | other *** search
- /*** File: "CgestisciDLOGDati_v01.h"
- *
- * Handle a DLOG. The item in the DLOG are descript with
- * a type 'EdFl' resouce.
- * © 1994-96 Francesco Cadili.
- *
- ****/
- #ifndef __CgestisciDLOGDati__
- #define __CgestisciDLOGDati__
-
- #ifndef __CPushButton__
- #include "CPushButton_v002.h"
- #endif
- #ifndef __CDefPushButton__
- #include "CDefPushButton_v002.h"
- #endif
- #ifndef __CGestisciMenu__
- #include "CGestisciMenu_v003.h"
- #endif
- #ifndef __CGestisciTE__
- #include "CGestisciTE_v02.h"
- #endif
- #ifndef __CGestisciElOrd__
- #include "CGestisciElOrd_v03.h"
- #endif
- #ifndef __CString_P__
- #include "Cstring_P_v32.h"
- #endif
-
- class CtxtRec
- {
- public:
- CGestisci_TE *TEH;
- short popUpEl; // il popUp (elemento nell'array dei popUp, -1 se non c'è)
-
- /*** constructor
- *
- ****/
- CtxtRec(void);
-
- /*** destructor
- *
- ****/
- ~CtxtRec(void);
- };
-
- class CequivalentRec
- {
- public:
- char key; // il campo di input
- CPushButton *button; // il bottone abilitato
-
- /*** constructor
- *
- ****/
- CequivalentRec(void);
-
- /*** destructor
- *
- ****/
- ~CequivalentRec(void);
- };
-
- class CgestisciDLOGDati
- {
- protected:
- DialogPtr theDialog; // il puntatore ai dati del DLOG;
- short editRsrc; // il descrittore dei field.
- RGBColor backGround; // il colore di BackGround
- RGBColor oldbackGround;
- short nEdit; // il numero di campi Edit;
- short actEditNum; // l'item del campo attivo;
- CtxtRec *actTEH; // il Text Edit attuale;
- CtxtRec ***textEdit; // i dati relativi ai TextEdit
- short nPopUp; // il numero dei popUp
- short nPopUpEdFl; // il numero dei popUp dei campi line edit
- CGestisciMenu ***popUps; // i dati relativi ai PopUp
- short nListe; // il numero di campi liste;
- CGestisciElOrd *actLista; // la lista attuale
- CGestisciElOrd ***liste; // le due liste con scroll bar
- CDefPushButton ***actDefaultDesc; // il descrittore dei dati;
- short actDefaultNum; // il numero di default button;
- CDefPushButton *actDefaultButton; // il bottone di default attuale;
- CPushButton *cancel;
- CequivalentRec ***equivalent;
- short equivalentNum;
- long oldTime;
- Boolean doubleClick;
- Boolean hasPayedFee;
- Boolean testRegistering;
- enum { ignoto = -1, kLineEdit, kScrollEdit, kPopUp, kList };
- enum { editMenuID = 129, fontMenuID = 131, sizeMenuID, styleMenuID };
- enum { aboutDLOGID = 129, sizeDLOGID = 131, helpDLOGID, registerDLOGID, ckRegInfoDLOGID,
- registerInfoDLOGID };
- enum { size9pt = 1, size10pt, size12pt, size18pt, size24pt, size36pt, sizeOther = 8 };
- enum { plainItem = 1, boldItem, italicItem, underlineItem, outlineItem, shadowItem,
- condesedItem, extendedItem };
- enum { cutEditItem = 1, copyEditItem, pastEditItem, cancelEditItem };
- enum { aboutDLOGDescr = 130, sizeDLOGDescr = 131, helpDLOGDescr, registerDLOGDescr,
- ckRegInfoDLOGDescr, registerInfoDLOGDescr };
- enum { sizeItemField = 2, okSizeDLOGitem = 4, cancelSizeDLOGitem };
- enum { ok_registerInfoDLOGitem = 12 };
- enum { okAboutDLOGitem = 2, iconAboutDLOGItem, helpAboutDLOGItem };
- enum { okhelpDLOGitem = 1 };
- enum { icon_registerDLOGitem = 2, registerDLOGitem, notYet_registerDLOGitem };
- enum { ok_kRegInfoItem = 5, cancel_kRegInfoItem, name_kRegInfoItem, lastName_kRegInfoItem,
- country_kRegInfoItem, email_kRegInfoItem, code_kRegInfoItem = 12};
- enum { nameTextID =132, lastNameTextID, countryTextID, emailTextID, codeTextID,
- msgTextID };
-
- /****
- * encode();
- *
- * codifica la stringa str.
- ***/
- void encode(char *code, Cstring_P &str, short n);
-
- /****
- * registerInfo();
- *
- ***/
- void registerInfo(void);
-
- /****
- * callForRegistering();
- *
- ***/
- void callForRegistering(void);
-
- /****
- * hasPayFee();
- *
- ***/
- Boolean hasPayFee(void);
-
- /****
- * registeringDLOG();
- *
- ***/
- void registeringDLOG(void);
-
- /****
- * result = LoadVers_100();
- *
- * Inizializza i dati relativi al DLOG. (vesion 1.0.1)
- * (Presuppone che alcuni dati nella struttura globale siano
- * presenti).
- *
- * The 'Edl1' type:
- * Number of Edit Field ZCNT
- * LSTC
- * Edit Field DWRD
- * FontPSTRSize DWRD
- * Has ScrollBar BOOL
- * Has PopUp BOOL
- * PopUp Field DWRD
- * PopUp IDDWRD
- * LSTE
- * Number of List Field ZCNT
- * LSTC
- * Edit Field DWRD
- * Number of Item ZCNT
- * LSTC
- * Dimensione DWRD
- * Titolo PSTR
- * Font Titolo PSTR
- * Size Font Titolo DWRD
- * FontPSTRSize DWRD
- * Can Modify BOOL
- * LSTE
- * Has ScrollBar BOOL
- * Can Modify Font BOOL (add at v_101)
- * Has Number Field BOOL
- * Number Font PSTR
- * Number Size DWRD
- * LSTE
- * Number of PopUp Field ZCNT
- * LSTC
- * PopUp Field DWRD
- * PopUp IDDWRD
- * LSTE
- * Default control info ZCNT
- * LSTC
- * Input field DWRD
- * Button field DWRD
- * LSTE
- * Cancel Button DWRD
- * Button Equivalent ZCNT
- * LSTC
- * Key Char CHAR
- * Button field DWRD
- * LSTE
- *
- *
- * Val OUTPUT: TRUE se tutto ok, FALSE altrimenti.
- *
- ***/
- Boolean CgestisciDLOGDati::LoadVers_101(Ptr resPtr);
-
- /****
- * result = InitData_gestDLOG();
- *
- * Inizializza i dati relativi al DLOG.
- * (Presuppone che alcuni dati nella struttura globale siano
- * presenti).
- *
- * Val OUTPUT: TRUE se tutto ok, FALSE altrimenti.
- *
- ***/
- Boolean InitData(void);
-
- /***
- * MantainCursor(&theEvent);
- *
- ***/
- void MantainCursor(void);
-
- /***
- * searchNext_gestDLOG(item);
- *
- * Val OUTPUT: restituisce il prossimo campo text Edit.
- *
- ***/
- short searchNext(short item);
-
- /***
- * searchNext(item);
- *
- * Val OUTPUT: restituisce il precedente campo text Edit.
- *
- ***/
- short searchPrec(short item);
-
- /***
- * setNewDefault(itemHit);
- *
- * modifica il bottone di default
- *
- * Par INPUT: 'itemHit' il numero di item.
- *
- ***/
- void setNewDefault(short itemHit);
-
- /***
- * linkToDefault(itemHit);
- *
- * cerca il bottone legato all'item.
- *
- * Par INPUT: 'itemHit' il numero di item.
- * Val OUTPUT: l'item del bottone, -1 se non c'è.
- *
- ***/
- short linkToDefault(short itemHit, short *pos);
-
- /***
- * initTextData(itemHit);
- *
- * Inizializza i dati relativi ad un text Edit
- *
- * Par INPUT: 'itemHit' il numero di item.
- *
- ***/
- void initTextData(short itemHit);
-
- /***
- * pos = searchPopUp_gestDLOG(item);
- *
- * ritorna la posizione nell'array dei
- * textEdit, -1 se non lo trova.
- *
- ***/
- short searchPopUp(short item);
-
- /***
- * pos = searchTextEdit(item);
- *
- * ritorna la posizione nell'array dei
- * textEdit, -1 se non lo trova.
- *
- ***/
- short searchTextEdit(short item);
-
- /***
- * pos = searchList(item);
- *
- * ritorna la posizione nell'array dei
- * textEdit, -1 se non lo trova.
- *
- ***/
- short searchList(short item);
-
- /****
- * disabilitaTextData();
- *
- ***/
- void disabilitaTextData(void);
-
- /****
- * disabilitaListaData();
- *
- ***/
- void disabilitaListaData(void);
-
- /*** activeField(short itemHit);
- *
- * Attiva un textEdit.
- *
- * Par INPUT: 'itemHit' l'item del dialog su cui l'utente ha cliccato.
- *
- ************************************************************************/
- void activeTextEdit(short itemHit, Boolean SelectAll = false);
-
- /***
- * searchButtonEq(minusChar);
- *
- * controlla gli equivalente sui bottoni.
- *
- ***/
- short searchButtonEq(char minusChar, short *pos);
-
- /***
- * itemProcessed = whichItem(itemHit);
- *
- * Determina il tipo di item selezionato
- *
- * Par INPUT: 'itemHit' l'item ritornato dal dialog
- *
- ***/
- short whichItem(short itemHit, short *pos);
-
- /****
- * sostituisciTesto_gestDLOG(elOrdHdl, nEl, data);
- *
- * inserisce del testo nel textEdit corrente
- *
- ***/
- Boolean sostituisciTesto(short item, short nEl, Cstring_P *str);
-
- /***
- * setDefault(value);
- *
- * disabilita i bottoni di default.
- *
- ***/
- void setDefault(short value);
-
- /***
- * about();
- *
- * mostra l'about DLOG.
- *
- ***/
- void about(void);
-
- /***
- * help();
- *
- * mostra l'help DLOG.
- *
- ***/
- void help(void);
-
- /***
- * gestisciMBarSel(sel);
- *
- * gestisce il menu del DLOG.
- *
- * Par INPUT: <sel> la selezione effettuata.
- *
- ***/
- Boolean gestisciMBarSel(long sel, Point *pt);
-
- public:
- Boolean disableAboutDLOG;
- /***
- * destructor.
- *
- ***/
- ~CgestisciDLOGDati(void);
-
- /***
- * constructor.
- *
- ***/
- CgestisciDLOGDati(void);
-
- /****
- * IgestisciDLOGDati(theDialog, editRsrc);
- *
- * Val OUTPUT: false se tutto ok, true altrimenti.
- *
- ***/
- Boolean IgestisciDLOGDati(DialogPtr theDialog, short editRsrc);
-
- /****
- * Dispose();
- *
- ***/
- void Dispose(void);
-
- /****
- * updateEvt_gestDLOG(dataHdl);
- *
- * Gestisce l'updateEvt nei campi definiti come "user"
- * (inListaNomi, inScrollBar)
- ***/
- void updateEvt(void);
-
- /***
- * KeyDown_gestDLOG(&theEvent);
- *
- * filtra le chiavi. Resituisce -1 se non
- * ha gestito l'evento il numero di item
- * attivo altrimenti.
- *
- ***/
- short gestEvent(EventRecord *theEvent);
-
- /****
- * idle(elOrdHdl);
- *
- * verifica se è attivo un textEdit.
- *
- ***/
- void idle(void);
-
- /***
- * disableDefault(item);
- *
- * disabilita i bottoni di default.
- *
- ***/
- void disableDefault(void);
-
- /****
- * inTextEdit(elOrdHdl);
- *
- * verifica se è attivo un textEdit.
- *
- ***/
- Boolean inTextEdit(void);
-
- /***
- * itemSelect(&theEvent, itemHit, &pos, &status);
- *
- * filtra gli item. Resituisce ignoto se non
- * ha gestito l'evento il tipo di item reso
- * attivo altrimenti.
- *
- ***/
- short itemSelect( EventRecord *theEvent, short itemHit, short *pos,
- Boolean *status);
- /***
- * TEH = getTextEdit_gestDLOG(item);
- *
- * ritorna la l'handle al
- * textEdit, NULL se non lo trova.
- *
- ***/
- CtxtRec *getTextEdit(short item);
-
- /***
- * lista = searchList_gestDLOG(item);
- *
- * ritorna la lista, NULL se non lo trova.
- *
- ***/
- CGestisciElOrd *getList(short item);
-
- /***
- * pos = searchPopUp_gestDLOG(item);
- *
- * ritorna il popUp, NULL se non lo trova.
- *
- ***/
- CGestisciMenu *getPopUp(short item);
-
- /***
- * textStr = getText(item);
- *
- * legge il testo del TextItem <item>.
- *
- ***/
- Cstring_P *getText(short item);
-
- /****
- * cancellaTesto(elOrdHdl, item);
- *
- * cancella il testo del textEdit 'item'.
- *
- ***/
- Boolean cancellaTesto(short item);
-
- /****
- * aggiungiTesto_gestDLOG(item, nEl, str);
- *
- * inserisce del testo nel textEdit corrente
- *
- ***/
- Boolean aggiungiTesto(short item, short nEl, Cstring_P *str);
-
- /***
- * setItemONMenu();
- *
- * Set the menu items.
- *
- * Par OUTPUT: true se errore, false altrimenti.
- *
- ***/
- Boolean setItemONMenu(void);
- };
- #endif